namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Provides high performance selector/xpath processing by compiling queries into reusable functions. New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in).
	/// 
	/// DomQuery supports most of the CSS3 selectors spec, along with some custom selectors and basic XPath.  
	/// All selectors, attribute filters and pseudos below can be combined infinitely in any order. For example &quot;div.foo:nth-child(odd)[@foo=bar].bar:first&quot; would be a perfectly valid selector. Node filters are processed in the order in which they appear, which allows you to optimize your queries for your document structure.
	/// Element Selectors:  * any element  E an element with the tag E  E F All descendent elements of E that have the tag F  E &gt; F or E/F all direct children elements of E that have the tag F  E + F all elements with the tag F that are immediately preceded by an element with the tag E  E ~ F all elements with the tag F that are preceded by a sibling...
	/// </summary>
	/// <htmlSummary>
	/// Provides high performance selector/xpath processing by compiling queries into reusable functions. New pseudo classes and matchers can be plugged. It works on HTML and XML documents (if a content node is passed in).
	/// &lt;p&gt;
	/// DomQuery supports most of the &lt;a href=&quot;http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#selectors&quot;&gt;CSS3 selectors spec&lt;/a&gt;, along with some custom selectors and basic XPath.&lt;/p&gt;
	///
	/// &lt;p&gt;
	/// All selectors, attribute filters and pseudos below can be combined infinitely in any order. For example &quot;div.foo:nth-child(odd)[@foo=bar].bar:first&quot; would be a perfectly valid selector. Node filters are processed in the order in which they appear, which allows you to optimize your queries for your document structure.
	/// &lt;/p&gt;
	/// &lt;h4&gt;Element Selectors:&lt;/h4&gt;
	/// &lt;ul class=&quot;list&quot;&gt;
	/// &lt;li&gt; &lt;b&gt;*&lt;/b&gt; any element&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E&lt;/b&gt; an element with the tag E&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E F&lt;/b&gt; All descendent elements of E that have the tag F&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E &gt; F&lt;/b&gt; or &lt;b&gt;E/F&lt;/b&gt; all direct children elements of E that have the tag F&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E + F&lt;/b&gt; all elements with the tag F that are immediately preceded by an element with the tag E&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E ~ F&lt;/b&gt; all elements with the tag F that are preceded by a sibling element with the tag E&lt;/li&gt;
	/// &lt;/ul&gt;
	/// &lt;h4&gt;Attribute Selectors:&lt;/h4&gt;
	/// &lt;p&gt;The use of &amp;#64; and quotes are optional. For example, div[&amp;#64;foo=&apos;bar&apos;] is also a valid attribute selector.&lt;/p&gt;
	/// &lt;ul class=&quot;list&quot;&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo]&lt;/b&gt; has an attribute &quot;foo&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo=bar]&lt;/b&gt; has an attribute &quot;foo&quot; that equals &quot;bar&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo^=bar]&lt;/b&gt; has an attribute &quot;foo&quot; that starts with &quot;bar&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo$=bar]&lt;/b&gt; has an attribute &quot;foo&quot; that ends with &quot;bar&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo*=bar]&lt;/b&gt; has an attribute &quot;foo&quot; that contains the substring &quot;bar&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo%=2]&lt;/b&gt; has an attribute &quot;foo&quot; that is evenly divisible by 2&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E[foo!=bar]&lt;/b&gt; attribute &quot;foo&quot; does not equal &quot;bar&quot;&lt;/li&gt;
	/// &lt;/ul&gt;
	/// &lt;h4&gt;Pseudo Classes:&lt;/h4&gt;
	/// &lt;ul class=&quot;list&quot;&gt;
	/// &lt;li&gt; &lt;b&gt;E:first-child&lt;/b&gt; E is the first child of its parent&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:last-child&lt;/b&gt; E is the last child of its parent&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:nth-child(&lt;i&gt;n&lt;/i&gt;)&lt;/b&gt; E is the &lt;i&gt;n&lt;/i&gt;th child of its parent (1 based as per the spec)&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:nth-child(odd)&lt;/b&gt; E is an odd child of its parent&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:nth-child(even)&lt;/b&gt; E is an even child of its parent&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:only-child&lt;/b&gt; E is the only child of its parent&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:checked&lt;/b&gt; E is an element that is has a checked attribute that is true (e.g. a radio or checkbox) &lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:first&lt;/b&gt; the first E in the resultset&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:last&lt;/b&gt; the last E in the resultset&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:nth(&lt;i&gt;n&lt;/i&gt;)&lt;/b&gt; the &lt;i&gt;n&lt;/i&gt;th E in the resultset (1 based)&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:odd&lt;/b&gt; shortcut for :nth-child(odd)&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:even&lt;/b&gt; shortcut for :nth-child(even)&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:contains(foo)&lt;/b&gt; E&apos;s innerHTML contains the substring &quot;foo&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:nodeValue(foo)&lt;/b&gt; E contains a textNode with a nodeValue that equals &quot;foo&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:not(S)&lt;/b&gt; an E element that does not match simple selector S&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:has(S)&lt;/b&gt; an E element that has a descendent that matches simple selector S&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:next(S)&lt;/b&gt; an E element whose next sibling matches simple selector S&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:prev(S)&lt;/b&gt; an E element whose previous sibling matches simple selector S&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E:any(S1|S2|S2)&lt;/b&gt; an E element which matches any of the simple selectors S1, S2 or S3//\\&lt;/li&gt;
	/// &lt;/ul&gt;
	/// &lt;h4&gt;CSS Value Selectors:&lt;/h4&gt;
	/// &lt;ul class=&quot;list&quot;&gt;
	/// &lt;li&gt; &lt;b&gt;E{display=none}&lt;/b&gt; css value &quot;display&quot; that equals &quot;none&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E{display^=none}&lt;/b&gt; css value &quot;display&quot; that starts with &quot;none&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E{display$=none}&lt;/b&gt; css value &quot;display&quot; that ends with &quot;none&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E{display*=none}&lt;/b&gt; css value &quot;display&quot; that contains the substring &quot;none&quot;&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E{display%=2}&lt;/b&gt; css value &quot;display&quot; that is evenly divisible by 2&lt;/li&gt;
	/// &lt;li&gt; &lt;b&gt;E{display!=none}&lt;/b&gt; css value &quot;display&quot; that does not equal &quot;none&quot;&lt;/li&gt;
	/// &lt;/ul&gt;
	/// </htmlSummary>
	/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
	[ScriptName("DomQuery")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class DomQuery
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		internal DomQuery()
		{
		}
		#endregion
		
		#region Methods
		/// <summary>Filters an array of elements to only include matches of a simple selector (e.g. div.some-class or span:first-child)</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="el">An array of elements to filter</param>
		/// <param name="selector">The simple selector to test</param>
		/// <param name="nonMatches">
		/// If true, it returns the elements that DON&apos;T match
		/// the selector instead of the ones that match
		/// </param>
		/// <returns>
		/// An Array of DOM elements which match the selector. If there are
		/// no matches, and empty Array is returned.
		/// </returns>
		[ScriptName("filter")]
		public System.Array Filter(System.Array el, string selector, bool nonMatches)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Compiles a selector/xpath query into a reusable function. The returned function
		/// takes one parameter &quot;root&quot; (optional), which is the context node from where the query should start.
		/// </summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		/// <param name="type">Either &quot;select&quot; (the default) or &quot;simple&quot; for a simple selector match</param>
		[ScriptName("compile")]
		public System.Function Compile(string selector, string type)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Compiles a selector/xpath query into a reusable function. The returned function
		/// takes one parameter &quot;root&quot; (optional), which is the context node from where the query should start.
		/// </summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		[ScriptName("compile")]
		public System.Function Compile(string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects a group of elements.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query (can be a comma separated list of selectors)</param>
		/// <param name="root">The start of the query (defaults to document).</param>
		/// <returns>
		/// An Array of DOM elements which match the selector. If there are
		/// no matches, and empty Array is returned.
		/// </returns>
		[ScriptName("jsSelect")]
		public System.Array JsSelect(string selector, object root)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects a group of elements.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query (can be a comma separated list of selectors)</param>
		/// <param name="root">The start of the query (defaults to document).</param>
		/// <returns>
		/// An Array of DOM elements which match the selector. If there are
		/// no matches, and empty Array is returned.
		/// </returns>
		[ScriptName("jsSelect")]
		public System.Array JsSelect(string selector, string root)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects a group of elements.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query (can be a comma separated list of selectors)</param>
		/// <returns>
		/// An Array of DOM elements which match the selector. If there are
		/// no matches, and empty Array is returned.
		/// </returns>
		[ScriptName("jsSelect")]
		public System.Array JsSelect(string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects a single element.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		/// <param name="root">The start of the query (defaults to document).</param>
		/// <returns>The DOM element which matched the selector.</returns>
		[ScriptName("selectNode")]
		public ext.Element SelectNode(string selector, object root)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects a single element.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		/// <returns>The DOM element which matched the selector.</returns>
		[ScriptName("selectNode")]
		public ext.Element SelectNode(string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects the value of a node, optionally replacing null with the defaultValue.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		/// <param name="root">The start of the query (defaults to document).</param>
		/// <param name="defaultValue"></param>
		[ScriptName("selectValue")]
		public string SelectValue(string selector, object root, string defaultValue)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Selects the value of a node, parsing integers and floats. Returns the defaultValue, or 0 if none is specified.</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="selector">The selector/xpath query</param>
		/// <param name="root">The start of the query (defaults to document).</param>
		/// <param name="defaultValue"></param>
		[ScriptName("selectNumber")]
		public System.Number SelectNumber(string selector, object root, System.Number defaultValue)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="el">An element id, element or array of elements</param>
		/// <param name="selector">The simple selector to test</param>
		[ScriptName("is")]
		public bool Is(string el, string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="el">An element id, element or array of elements</param>
		/// <param name="selector">The simple selector to test</param>
		[ScriptName("is")]
		public bool Is(System.Html.Element el, string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns true if the passed element(s) match the passed simple selector (e.g. div.some-class or span:first-child)</summary>
		/// <definedin>src\ext-core\src\core\DomQuery.js</definedin>
		/// <param name="el">An element id, element or array of elements</param>
		/// <param name="selector">The simple selector to test</param>
		[ScriptName("is")]
		public bool Is(System.Array el, string selector)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
